#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>

int main(int argc, char const *argv[])
{
	struct stat buf;

	if (stat("foo",&buf) < 0) {
		printf("stat error: %s\n", strerror(errno));
		return -1;
	}

	buf.st_mode &= ~(S_IROTH|S_IWOTH);
	if (chmod("foo",buf.st_mode) < 0)	{
		printf("chmod error: %s\n", strerror(errno));
		return -1;
	}	

	if (stat("bar",&buf) < 0) {
		printf("stat error: %s\n", strerror(errno));
		return -1;
	}

	buf.st_mode |= S_IRGRP|S_IWGRP;
	if (chmod("bar",buf.st_mode) < 0)	{
		printf("chmod error: %s\n", strerror(errno));
		return -1;
	}
	return 0;
}